package 策略模式;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

public class Main {
    public static void main(String[] args) {

        // 简单产品订单
        ProductOrder productOrder = new ProductOrder(1.0, 1, 1);

        // 不同的策略得到不同的订单价格结果
        PromotionContext promotionContext = new PromotionContext(new VipActive());
        promotionContext.excuteStratage(productOrder);
        PromotionContext promotionContext1 = new PromotionContext(new DiscountActive());
        promotionContext1.excuteStratage(productOrder);

        // 后边的比较接口实现相当于一种策略，不同策略实现不同的比较方式
//        Collections.sort(new ArrayList<Integer>(), new Comparable<Integer>() {
//            @Override
//            public int compareTo(Integer o) {
//                return 0;
//            }
//        });
    }
}
